package com.yt.phone.models.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.yt.phone.models.dto.BillDTO;
import com.yt.phone.models.bo.BillSaveBO;
import com.yt.phone.models.vo.BillVO;

import java.util.List;

/**
 * 账单信息服务接口
 */
public interface IBillService extends IService<BillDTO> {

    boolean add(BillSaveBO saveBO);

    List<BillDTO> getbillList();

    Page<BillVO> getpagebillList(int page,String keyword);

    List<BillDTO> searchgetbillList(String keyword);

    List<BillDTO> getBillListByUserId(Long userId);

    /**
     * 根据支付状态查询账单列表
     * @param payStatus 支付状态
     * @return 账单列表
     */
    List<BillDTO> getBillListByPayStatus(Integer payStatus);

    /**
     * 根据账单状态查询账单列表
     * @param status 账单状态 0-未计费 1-已计费
     * @return 账单列表
     */
    List<BillDTO> getBillListByStatus(Integer status);

    /**
     * 更新账单支付信息
     * @param billId 账单ID
     * @param payAmount 实际支付金额
     * @param payMethod 支付方式
     * @param payStatus 支付状态
     * @return 是否更新成功
     */
    boolean updatePayInfo(Long billId, Double payAmount, String payMethod, Integer payStatus);

}